###fixture有效性

import pytest


@pytest.fixture
def order():
    print("\n运行fixture函数-order") #1
    return [] #2


@pytest.fixture
def outer(order, inner):
    print("运行fixture函数-outer") #5
    order.append("outer") #6 ["one","outer"]

##外部outer请求的inner是TestOne下的。
#虽然TestOne类下的inner，只能作用于TestOne下的测试函数。但是，由于测试函数请求了外部的outer，所以，外部的outer也就可以请到内部的inner。
class TestOne:
    @pytest.fixture
    def inner(self, order):
        print("运行TestOne下的fixture-inner") #3
        order.append("one")  #4 ["one"]

    def test_order(self, order, outer):
        assert order == ["one", "outer"]


class TestTwo:
    @pytest.fixture
    def inner(self, order):
        print("运行TestTwo下的fixture-inner")
        order.append("two")

    def test_order(self, order, outer):
        assert order == ["two", "outer"]